64321 GOTO 64421:REM Branch to start of program. Subrountines are generally up front.
64322 REM This is the Neatlist program for PC -AT using BASICA or BASIC
64323 I=FNI(I):B=PEEK(I):RETURN:REM Looks at next byte
64324 GOSUB 64323:D=B:GOSUB 64323:D=256*B+D:RETURN:REM This statement gets two byte integer values
64325 D#=0:FOR Z=1 TO 6:GOSUB 64331:NEXT Z:GOSUB 64323:D#=((D#/256)+B)/128+1:GOSUB 64323:G$=G$+STR$(D#*2#^(B-129)):RETURN:REM This statement gets 8-byte value of a Real number
64326 GOSUB 64336:GOSUB 64336:GOSUB 64337:RETURN
64327 D#=0:GOSUB 64331:GOSUB 64331:GOSUB 64323:D=((D#/256)+B)/128+1:GOSUB 64323:G$=G$+STR$(D*(2^(B-129))):RETURN :REM This statement gets 4-byte value of Real number
64328 GOSUB 64323:B=B-128:G$=G$+F1$(B):RETURN:REM get function tokens
64329 GOSUB 64323:B=B-128:G$=G$+F3$(B):RETURN
64330 GOSUB 64323:B=B-128:G$=G$+F2$(B):RETURN
64331 GOSUB 64323:D#=((D#/256)+B):RETURN:REM Real number repeated operation
64332 G$=G$+STR$(B):RETURN:REM Puts values into collection string
64333 G$=G$+STR$(D):RETURN
64334 G$=G$+T$(B):RETURN
64335 IA$=INKEY$:IF IA$="" GOTO 64335 ELSE IA=ASC(IA$):IF IA>96 AND IA<123 THEN IA$=CHR$(IA-32):RETURN ELSE RETURN:REM Standard input routine for 1 character. Character is always upper case.
64336 D=0:GOSUB 64337:PRINT:IF FL=1 THEN LPRINT:RETURN ELSE RETURN:REM This routine prints a new line and checks for new page requirement
64455 PRINT"Page length is "LP" lines, want other?":GOSUB 64335:IF IA$="Y" THEN INPUT"Page length ";LP
64456 INPUT"Enter the largest line number you wish to print";KN:IF KN=0 THEN KN=64320! ELSE PRINT"Is this ";KN;" the number you wish?":GOSUB 64335:IF IA$<>"Y" AND IA$<>" " THEN 64456
64457 PRINT"If you want to print hit 'P' else hit any key to display on the screen":GOSUB 64335
64458 IF IA$<>"P" THEN 64459 ELSE FL=1
64459 LC=6:PC=1:GOSUB 64342:GOTO 64349
64460 REM Begin Table of Variable Use
64461 REM B Program byte decimal value
64462 REM BB$ Big set of blanks (48)
64463 REM CF IF flag. If started CF = 1
64464 REM CS IF indent space counter
64465 REM C$ Collection String
64466 REM D Direction temporary variable
64467 REM D# Collection term for floating point numbers
64468 REM DF Data Flag = 1 when DATA on a line
64469 REM E Temporary for split-line limits
64470 REM EL ELSE flag
64471 REM F$() Function Token Array
64472 REM FF FOR Flag = 1 when FOR is encountered
64473 REM FL Flag =1 if display is printed
64474 REM FS FOR spacing counter
64475 REM G$ Gathering String
64476 REM H$() Page title header array
64477 REM I Pointer to program byte in RAM
64478 REM IA Input response
64479 REM IA$ Input Answer string
64480 REM IM Indent Multiplier
64481 REM K Temporary
64482 REM LB$ Little Blank (10)
64483 REM LC Line Counter for pagination
64484 REM LL Line Length (width)
64485 REM LP Lines Per Page Constant
64486 REM M$ Left margin spacing string
64487 REM N$ Line Number string
64488 REM OF OUTPUT Flag (used to prevent open statements from erroneously indenting
64489 REM PC Page Counter for header
64490 REM QF Quote Flag = 1 if Quote found, -1 if not Quote
64491 REM RF REMark Flag
64492 REM RS REMark indent spacing
64493 REM SF Split Line Flag
64494 REM S$ Single Space
64495 REM T$() Token Array
64496 REM TN Line Number counter
64497 REM TS Total Statement Counter
64498 REM WF WHILE Flag
64499 REM WS WHILE indent spacing
64500 REM Z Temporary
64501 REM FNI Increment by 1 up to 32767 when becomes -32768